<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		// 全局变量， 可以在任意地方使用
		var a = 10;
		function b(){
			console.log("hello")
		}
		
		function c(){
			// 局部变量只能在函数内使用
			var res = "isok"

		}
		// 作用域连
		// var e = 20;
		// 1.变量查找只能从里面往外找，不能从外面往里面找
		// 2. 在距离最近的作用域找到了相应的变量就不会继续往下查找了
		function fun(){
			var a = 10;
			console.log(111)
			function fun2(){
				var b = 11;
				var c = 13;
				function fun3(){
					var c = 12;
					console.log(c); // e is not defined
				}

				fun3();

			}

			fun2(); 
			// fun3(); fun3 is not defined
			// fun3(); 错误的  fun3 is not defined
		}
		console.log(2222)
		fun();
		


		var i = 0;
	    // 故意写一个死递归
	    function fn(){
	        	++i;
	        fn();
	    }
	    // fn();
	    // 使用try catch 捕获栈溢出错误
	    try {
	        fn(); // 启动递归
	    } catch(err){ // 错误捕获
	        console.log(i, err); // 15717 RangeError: Maximum call stack size exceeded
	    }
	</script>
</body>
</html>